Option Explicit

Implements IExpression

'################################################################
' Field
'################################################################
' 函数名
Private funcName As String
' 当前函数的所有参数
' List<IExpression>
Private params As Collection

'################################################################
' Constructor
'################################################################
Private Sub Class_Initialize()
    Set params = new Collection
End Sub

Private Sub Class_Terminate()
    Set params = Nothing
End Sub

'################################################################
' Init
'################################################################
' @param funcNameVal 函数名
Public Sub Init(ByRef funcNameVal As String)
    funcName = funcNameVal
End Sub

'################################################################
' Property
'################################################################
' 返回函数名
Public Property Get FunctionName() As String
    FunctionName = funcName
End Property

' 返回当前函数的所有参数
' List<IExpression>
Public Property Get Parameters() As Collection
    Set Parameters = params
End Property

'################################################################
' Function
'################################################################
Public Sub addParma(ByRef p As IExpression)
    params.Add p
End Sub
